package com.briup.day23;

import java.io.*;
/*
* */
public class Test_BuffedChar {
    public static void main(String[] args) throws Exception {
        /**
         * // BufferedReader的构造函数(需要传一个Reader类型的流 而FileReader是它的子类  相当于
         * ：Reader reader = new FileReader("src/dir/a.txt");)
         * public BufferedReader(Reader in) {
         *     this(in, defaultCharBufferSize);
         * }
         *
         * // FileReader是Reader的子类，所以可以传入
         * Reader reader = new FileReader("src/dir/a.txt");  // 多态：子类可以赋值给父类
         * BufferedReader br = new BufferedReader(reader);   // 合法！*/


        //创建字符缓冲输入流对象 字符缓冲输出流对象
        BufferedReader br = new BufferedReader(new FileReader("01-Basic/src/dir/a.txt"));
        BufferedWriter bw = new BufferedWriter(new FileWriter("01-Basic/src/dir/b.txt",true));
        System.out.println(br.read());
//        int len;
//        while ((len = br.read()) != -1) {
//            bw.write(len);
//        }
//        readline读取不了换行符（//读取整行数据 不包含 换行符）
        String len;
        while ((len = br.readLine()) != null) {
            bw.write(len);
            if(br.ready()){//ready为true 表示未读取到文件末尾 false读到了
//                每读取一行写一个额外的换行符
                bw.newLine();//用来写入换行符
                //所有读到文件末尾就不加了
            }
        }
/*readLine()：用于文本处理，按行逻辑操作
read(char[])：用于数据复制，追求最高性能*/

        char[] cbuf = new char[1024];
//        while ((len = br.read(cbuf)) != -1) {
//            bw.write(cbuf, 0, len);
//        }
        //
        bw.close();
        br.close();
    }
}
